![]() |
WOLF core
WOLF: A Modular Estimation Framework for Robotics
|
#include <core/common/node_state_blocks.h>
Public Member Functions | |
| NodeStateBlocks (const std::string &_category, const std::string &_type, const TypeComposite &_state_types, const VectorComposite &_state_vectors, const PriorComposite &_state_priors) | |
| Constructor. More... | |
| virtual | ~NodeStateBlocks () |
| virtual YAML::Node | toYaml () const |
| StateKeys | getKeys () const |
| TypeComposite | getStateTypes () const |
| bool | has (const char &_sb_key) const |
| bool | has (const std::string &_keys) const |
| virtual unsigned int | id () const =0 |
| std::map< char, StateBlockConstPtr > | getStateBlockMap () const |
| std::map< char, StateBlockPtr > | getStateBlockMap () |
| std::vector< StateBlockConstPtr > | getStateBlockVec () const |
| std::vector< StateBlockPtr > | getStateBlockVec () |
| StateBlockConstPtr | getP () const |
| StateBlockConstPtr | getO () const |
| StateBlockPtr | getP () |
| StateBlockPtr | getO () |
| virtual void | fix () |
| virtual void | unfix () |
| virtual bool | isFixed () const |
| StateBlockPtr | emplaceStateBlock (const char key, const std::string &_type, const Eigen::VectorXd &_vector, const bool &_fixed) |
| Emplace a state block. More... | |
| StateBlockPtr | emplaceStateBlockZero (const char key, const std::string &_type, const bool &_fixed) |
| Emplace a state block with zero state. More... | |
| bool | hasStateBlock (const StateBlockConstPtr &_sb) const |
| bool | setStateBlock (const char _sb_key, const StateBlockPtr &_sb) |
| bool | stateBlockKey (const StateBlockConstPtr &_sb, char &_key) const |
| virtual StateBlockConstPtr | getStateBlock (const char &_sb_key) const |
| virtual StateBlockPtr | getStateBlock (const char &_sb_key) |
| void | setProblem (ProblemPtr _problem) override |
| virtual void | remove (bool viral_remove_parent_without_children=false) |
| bool | hasChildren () const override |
| void | emplaceFactorStateBlock (const char &_key, const Eigen::VectorXd &_x, const Eigen::MatrixXd &_cov, unsigned int _start_idx=0) |
| Add an absolute factor to a parameter. More... | |
| void | emplacePriors () |
| FactorBaseConstPtrSet | getFactoredBySet () const |
| FactorBasePtrSet | getFactoredBySet () |
| void | getFactoredBySet (FactorBaseConstPtrSet &_fac_set) const |
| void | getFactoredBySet (FactorBasePtrSet &_fac_set) |
| FactorBaseConstPtrSet | getSensoryFactorSet () const |
| FactorBasePtrSet | getSensoryFactorSet () |
| std::map< char, FactorBaseConstPtr > | getPriorFactorMap () const |
| std::map< char, FactorBasePtr > | getPriorFactorMap () |
| FactorBaseConstPtr | getPriorFactor (char) const |
| FactorBasePtr | getPriorFactor (char) |
| FactorBaseConstPtrList | getFactorsOf (ProcessorBaseConstPtr _processor_ptr, const std::string &type="") const |
| FactorBasePtrList | getFactorsOf (ProcessorBasePtr _processor_ptr, const std::string &type="") |
| bool | hasFactor (FactorBaseConstPtr _fac) const |
| VectorComposite | getState (const StateKeys &_keys="") const |
| void | setState (const VectorComposite &_state, const bool _notify=true) |
| void | setState (const Eigen::VectorXd &_state, const StateKeys &_keys, const std::list< SizeEigen > &_sizes, const bool _notify=true) |
| void | setState (const Eigen::VectorXd &_state, const StateKeys &_keys, const bool _notify=true) |
| void | setState (const StateKeys &_keys, const std::list< Eigen::VectorXd > &_vectors, const bool _notify=true) |
| Eigen::VectorXd | getStateVector (const StateKeys &_keys) const |
| unsigned int | getSize (const StateKeys &_keys="") const |
| unsigned int | getLocalSize (const StateKeys &_keys="") const |
| bool | getCovariance (const StateKeys &_keys, Eigen::MatrixXd &_cov) const |
| void | perturb (double amplitude=0.01) |
| perturb all states states with random noise following an uniform distribution in [ -amplitude, amplitude ] More... | |
| bool | isCapture () const |
| bool | isFrame () const |
| bool | isLandmark () const |
| bool | isSensor () const |
Public Member Functions inherited from wolf::NodeBase | |
| NodeBase (const std::string &_category, const std::string &_type="Undefined", const std::string &_name="") | |
| virtual | ~NodeBase ()=default |
| unsigned int | nodeId () const |
| std::string | getCategory () const |
| std::string | getType () const |
| std::string | getName () const |
| bool | isRemoving () const |
| virtual bool | hasChildren () const =0 |
| void | setType (const std::string &_type) |
| void | setName (const std::string &_name) |
| ProblemConstPtr | getProblem () const |
| ProblemPtr | getProblem () |
Protected Member Functions | |
| virtual void | removeStateBlock (const char &_sb_key) |
| void | transform (const VectorComposite &_transformation) |
| void | printState (bool _factored_by, bool _metric, bool _state_blocks, std::ostream &_stream, std::string _tabs) const |
| CheckLog | localCheck (bool _verbose, std::ostream &_stream, std::string _tabs) const |
| virtual void | setProblem (ProblemPtr _prob_ptr) |
Additional Inherited Members | |
Protected Attributes inherited from wolf::NodeBase | |
| ProblemWPtr | problem_ptr_ |
| unsigned int | node_id_ |
| Node id. It is unique over the whole Wolf Tree. More... | |
| std::string | node_category_ |
| Text label identifying the category of node ("SENSOR", "FEATURE", etc) More... | |
| std::string | node_type_ |
| Text label identifying the type or subcategory of node ("Pin Hole", "Point 2d", etc) More... | |
| std::string | node_name_ |
| bool | is_removing_ |
| A flag for safely removing nodes from the Wolf tree. See remove(). More... | |
| wolf::NodeStateBlocks::NodeStateBlocks | ( | const std::string & | _category, |
| const std::string & | _type, | ||
| const TypeComposite & | _state_types, | ||
| const VectorComposite & | _state_vectors, | ||
| const PriorComposite & | _state_priors | ||
| ) |
Constructor.
| _category | TO BE HARDCODED IN THE DERIVED CLASS CONSTRUCTOR: category name (see node_base.h) |
| _type | TO BE HARDCODED IN THE DERIVED CLASS CONSTRUCTOR: derived type name |
| _state_types | Composite of types of the states that the node can have. Probably to be hardcoded in the derived class constructor. |
| _state_vectors | Composite of vectors of the states of the node. A 'StateBlock' for each key in '_state_vectors' will be emplaced (of the type specified in '_state_types'). Not all keys of '_state_types' are required to be specified, but all keys of '_state_vectors' should be in '_state_types'. |
| _state_priors | Composite of priors (initial_guess, factor or fixed) of the states of the node. Not all keys of '_state_vectors' are required to be specified, but all keys of '_state_priors' should be in '_state_vectors'. If not specified, no prior is assumed, i.e. 'initial_guess'. |
|
inlinevirtual |
| void wolf::NodeStateBlocks::emplaceFactorStateBlock | ( | const char & | _key, |
| const Eigen::VectorXd & | _x, | ||
| const Eigen::MatrixXd & | _cov, | ||
| unsigned int | _start_idx = 0 |
||
| ) |
Add an absolute factor to a parameter.
Add an absolute factor to a parameter
| _i | state block index (in state_block_vec_) of the parameter to be constrained |
| _x | prior value |
| _cov | covariance |
| _start_idx | state segment starting index (not used in quaternions) |
| _size | state segment size (-1: whole state) (not used in quaternions) |
| void wolf::NodeStateBlocks::emplacePriors | ( | ) |
| StateBlockPtr wolf::NodeStateBlocks::emplaceStateBlock | ( | const char | key, |
| const std::string & | _type, | ||
| const Eigen::VectorXd & | _vector, | ||
| const bool & | _fixed | ||
| ) |
Emplace a state block.
| _key | Key of the new state. |
| _type | Types of the new state. |
| _vector | Vector of the new state. |
| _fixed | If the new state is fixed (i.e. not estimated). |
| StateBlockPtr wolf::NodeStateBlocks::emplaceStateBlockZero | ( | const char | key, |
| const std::string & | _type, | ||
| const bool & | _fixed | ||
| ) |
Emplace a state block with zero state.
| _key | Key of the new state. |
| _type | Types of the new state. |
| _fixed | If the new state is fixed (i.e. not estimated). |
|
inlinevirtual |
Reimplemented in wolf::CaptureBase.
| bool wolf::NodeStateBlocks::getCovariance | ( | const StateKeys & | _keys, |
| Eigen::MatrixXd & | _cov | ||
| ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
| FactorBaseConstPtrList wolf::NodeStateBlocks::getFactorsOf | ( | ProcessorBaseConstPtr | _processor_ptr, |
| const std::string & | type = "" |
||
| ) | const |
| FactorBasePtrList wolf::NodeStateBlocks::getFactorsOf | ( | ProcessorBasePtr | _processor_ptr, |
| const std::string & | type = "" |
||
| ) |
|
inline |
| unsigned int wolf::NodeStateBlocks::getLocalSize | ( | const StateKeys & | _keys = "" | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| unsigned int wolf::NodeStateBlocks::getSize | ( | const StateKeys & | _keys = "" | ) | const |
| VectorComposite wolf::NodeStateBlocks::getState | ( | const StateKeys & | _keys = "" | ) | const |
|
inlinevirtual |
Reimplemented in wolf::CaptureBase, and wolf::SensorBase.
|
inlinevirtual |
Reimplemented in wolf::CaptureBase, and wolf::SensorBase.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| VectorXd wolf::NodeStateBlocks::getStateVector | ( | const StateKeys & | _keys | ) | const |
|
inline |
|
inline |
|
inlineoverridevirtual |
Implements wolf::NodeBase.
Reimplemented in wolf::FrameBase.
|
inline |
| bool wolf::NodeStateBlocks::hasStateBlock | ( | const StateBlockConstPtr & | _sb | ) | const |
|
pure virtual |
Implemented in wolf::CaptureBase, wolf::FrameBase, wolf::LandmarkBase, and wolf::SensorBase.
|
inline |
|
virtual |
|
inline |
|
inline |
|
inline |
|
protected |
| void wolf::NodeStateBlocks::perturb | ( | double | amplitude = 0.01 | ) |
perturb all states states with random noise following an uniform distribution in [ -amplitude, amplitude ]
|
protected |
|
virtual |
Reimplemented in wolf::CaptureBase, wolf::FrameBase, and wolf::LandmarkBase.
|
protectedvirtual |
|
overridevirtual |
Reimplemented from wolf::NodeBase.
Reimplemented in wolf::LandmarkBase, wolf::FrameBase, and wolf::SensorBase.
| void wolf::NodeStateBlocks::setState | ( | const Eigen::VectorXd & | _state, |
| const StateKeys & | _keys, | ||
| const bool | _notify = true |
||
| ) |
| void wolf::NodeStateBlocks::setState | ( | const Eigen::VectorXd & | _state, |
| const StateKeys & | _keys, | ||
| const std::list< SizeEigen > & | _sizes, | ||
| const bool | _notify = true |
||
| ) |
| void wolf::NodeStateBlocks::setState | ( | const StateKeys & | _keys, |
| const std::list< Eigen::VectorXd > & | _vectors, | ||
| const bool | _notify = true |
||
| ) |
| void wolf::NodeStateBlocks::setState | ( | const VectorComposite & | _state, |
| const bool | _notify = true |
||
| ) |
|
inline |
| bool wolf::NodeStateBlocks::stateBlockKey | ( | const StateBlockConstPtr & | _sb, |
| char & | _key | ||
| ) | const |
|
virtual |
Reimplemented in wolf::LandmarkBase.
|
protected |
|
inlinevirtual |
Reimplemented in wolf::CaptureBase.